package com.cardone.platform.usercenter.service;

import java.util.List;
import java.util.Map;

import com.cardone.common.cache.support.CacheEvictSupport;
import com.cardone.common.dto.PaginationDto;
import com.cardone.platform.usercenter.dto.UsOrgTranslateDto;
import com.cardone.platform.usercenter.dto.UserActivationDto;
import com.cardone.platform.usercenter.dto.UserDto;

/**
 * 用户服务
 * 
 * @author yaoht
 */
public interface UserService extends CacheEvictSupport {
	/**
	 * spring bean id
	 */
	String BEAN_ID = "com.cardone.platform.usercenter.service.UserService";

	/**
	 * 保存:用户
	 * 
	 * @param saveUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	UserDto saveUserByIdOrCode(UserDto saveUser);

	/**
	 * 保存:用户
	 * 
	 * @param saveUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	UserDto saveUserByName(UserDto saveUser);

	/**
	 * 删除:用户
	 * 
	 * @param deleteUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserByCode(UserDto deleteUser);

	/**
	 * 删除:用户
	 * 
	 * @param deleteUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserByIds(UserDto deleteUser);

	/**
	 * 设置:用户
	 * 
	 * @param updateUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int updateUserByCode(UserDto updateUser);

	/**
	 * 设置:用户
	 * 
	 * @param updateUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int updateUserByIds(UserDto updateUser);

	/**
	 * 读取:用户
	 * 
	 * @param readUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	Integer readUserByCodeNqId(UserDto readUser);

	/**
	 * 读取:用户
	 * 
	 * @param readUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	Integer readUserByName(UserDto readUser);

	/**
	 * 查询:用户
	 * 
	 * @param findUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	UserDto findUserByCode(UserDto findUser);

	/**
	 * 查询:用户
	 * 
	 * @param findUser
	 *            用户对象
	 * 
	 * @return 用户对象
	 */
	UserDto findUserById(UserDto findUser);

	/**
	 * 查询:用户
	 * 
	 * @param findListUser
	 *            用户对象
	 * 
	 * @return 用户对象集合
	 */
	List<UserDto> findListUserByCode(UserDto findListUser);

	/**
	 * 查询:用户
	 * 
	 * @param findListUser
	 *            用户对象
	 * 
	 * @return 用户对象集合
	 */
	List<UserDto> findListUserByName(UserDto findListUser);

	/**
	 * 分页:用户
	 * 
	 * @param paginationUser
	 *            用户对象
	 * 
	 * @return 用户分页对象
	 */
	PaginationDto<UserDto> paginationUserByCode(UserDto paginationUser);

	/**
	 * 分页:用户
	 * 
	 * @param paginationUser
	 *            用户对象
	 * 
	 * @return 用户分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserByName(UserDto paginationUser);

	/**
	 * 保存:用户激活
	 * 
	 * @param saveUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	UserActivationDto saveUserActivationByIdOrCode(UserActivationDto saveUserActivation);

	/**
	 * 保存:用户激活
	 * 
	 * @param saveUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	UserActivationDto saveUserActivationByName(UserActivationDto saveUserActivation);

	/**
	 * 删除:用户激活
	 * 
	 * @param deleteUserActivation
	 *            用户激活对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserActivationByCode(UserActivationDto deleteUserActivation);

	/**
	 * 删除:用户激活
	 * 
	 * @param deleteUserActivation
	 *            用户激活对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserActivationByIds(UserActivationDto deleteUserActivation);

	/**
	 * 设置:用户激活
	 * 
	 * @param updateUserActivation
	 *            用户激活对象
	 * 
	 * @return 影响行数
	 */
	int updateUserActivationByCode(UserActivationDto updateUserActivation);

	/**
	 * 设置:用户激活
	 * 
	 * @param updateUserActivation
	 *            用户激活对象
	 * 
	 * @return 影响行数
	 */
	int updateUserActivationByIds(UserActivationDto updateUserActivation);

	/**
	 * 读取:用户激活
	 * 
	 * @param readUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	Integer readUserActivationByCodeNqId(UserActivationDto readUserActivation);

	/**
	 * 读取:用户激活
	 * 
	 * @param readUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	Integer readUserActivationByName(UserActivationDto readUserActivation);

	/**
	 * 查询:用户激活
	 * 
	 * @param findUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	UserActivationDto findUserActivationByCode(UserActivationDto findUserActivation);

	/**
	 * 查询:用户激活
	 * 
	 * @param findUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象
	 */
	UserActivationDto findUserActivationById(UserActivationDto findUserActivation);

	/**
	 * 查询:用户激活
	 * 
	 * @param findListUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象集合
	 */
	List<UserActivationDto> findListUserActivationByCode(UserActivationDto findListUserActivation);

	/**
	 * 查询:用户激活
	 * 
	 * @param findListUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活对象集合
	 */
	List<UserActivationDto> findListUserActivationByName(UserActivationDto findListUserActivation);

	/**
	 * 分页:用户激活
	 * 
	 * @param paginationUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活分页对象
	 */
	PaginationDto<UserActivationDto> paginationUserActivationByCode(UserActivationDto paginationUserActivation);

	/**
	 * 分页:用户激活
	 * 
	 * @param paginationUserActivation
	 *            用户激活对象
	 * 
	 * @return 用户激活分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserActivationByName(UserActivationDto paginationUserActivation);

	/**
	 * 保存:用户组织调动
	 * 
	 * @param saveUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	UsOrgTranslateDto saveUsOrgTranslateByIdOrCode(UsOrgTranslateDto saveUsOrgTranslate);

	/**
	 * 保存:用户组织调动
	 * 
	 * @param saveUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	UsOrgTranslateDto saveUsOrgTranslateByName(UsOrgTranslateDto saveUsOrgTranslate);

	/**
	 * 删除:用户组织调动
	 * 
	 * @param deleteUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 影响行数
	 */
	int deleteUsOrgTranslateByCode(UsOrgTranslateDto deleteUsOrgTranslate);

	/**
	 * 删除:用户组织调动
	 * 
	 * @param deleteUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 影响行数
	 */
	int deleteUsOrgTranslateByIds(UsOrgTranslateDto deleteUsOrgTranslate);

	/**
	 * 设置:用户组织调动
	 * 
	 * @param updateUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 影响行数
	 */
	int updateUsOrgTranslateByCode(UsOrgTranslateDto updateUsOrgTranslate);

	/**
	 * 设置:用户组织调动
	 * 
	 * @param updateUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 影响行数
	 */
	int updateUsOrgTranslateByIds(UsOrgTranslateDto updateUsOrgTranslate);

	/**
	 * 读取:用户组织调动
	 * 
	 * @param readUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	Integer readUsOrgTranslateByCodeNqId(UsOrgTranslateDto readUsOrgTranslate);

	/**
	 * 读取:用户组织调动
	 * 
	 * @param readUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	Integer readUsOrgTranslateByName(UsOrgTranslateDto readUsOrgTranslate);

	/**
	 * 查询:用户组织调动
	 * 
	 * @param findUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	UsOrgTranslateDto findUsOrgTranslateByCode(UsOrgTranslateDto findUsOrgTranslate);

	/**
	 * 查询:用户组织调动
	 * 
	 * @param findUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象
	 */
	UsOrgTranslateDto findUsOrgTranslateById(UsOrgTranslateDto findUsOrgTranslate);

	/**
	 * 查询:用户组织调动
	 * 
	 * @param findListUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象集合
	 */
	List<UsOrgTranslateDto> findListUsOrgTranslateByCode(UsOrgTranslateDto findListUsOrgTranslate);

	/**
	 * 查询:用户组织调动
	 * 
	 * @param findListUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动对象集合
	 */
	List<UsOrgTranslateDto> findListUsOrgTranslateByName(UsOrgTranslateDto findListUsOrgTranslate);

	/**
	 * 分页:用户组织调动
	 * 
	 * @param paginationUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动分页对象
	 */
	PaginationDto<UsOrgTranslateDto> paginationUsOrgTranslateByCode(UsOrgTranslateDto paginationUsOrgTranslate);

	/**
	 * 分页:用户组织调动
	 * 
	 * @param paginationUsOrgTranslate
	 *            用户组织调动对象
	 * 
	 * @return 用户组织调动分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUsOrgTranslateByName(UsOrgTranslateDto paginationUsOrgTranslate);
}